﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TPDiseño.Clases_de_Entidad
{
    public class H_competencia
    {

        // Atributos
        private int cod_h_competencia;
        private string nombre;
        private string descripcion;
        private int ponderacionrequerida;
        private int ponderacionobtenida;
        private List<H_factor> factores;

        // Propiedades
        public int _cod_h_competencia
        {
            get
            {
                return cod_h_competencia;
            }
            set
            {
                cod_h_competencia = value;
            }
        }
        public string _nombre
        {
            get
            {
                return nombre;
            }
            set
            {
                nombre = value;
            }
        }
        public string _descripcion
        {
            get
            {
                return descripcion;
            }
            set
            {
                descripcion = value;
            }
        }
        public int _ponderacionrequerida
        {
            get
            {
                return ponderacionrequerida;
            }
            set
            {
                ponderacionrequerida = value;
            }
        }
        public int _ponderacionobtenida
        {
            get
            {
                return ponderacionobtenida;
            }
            set
            {
                ponderacionobtenida = value;
            }
        }
        public List<H_factor> _factores
        {
            get
            {
                return factores;
            }
            set
            {
                factores = value;
            }
        }

        // Constructores
        public H_competencia()
        {
        }
        public H_competencia(Competencia unaCompetencia, int unaPonderacion)
        {

            this.nombre = unaCompetencia._nombre;
            this.descripcion = unaCompetencia._descripcion;
            this.ponderacionrequerida = unaPonderacion;
            this._ponderacionobtenida = -1;      // <--- Requerido para obtener orden de merito

            this.factores = new List<H_factor>();

        }
        public H_competencia(int unCod_h_competencia, string unNombre, string unaDescripcion, int unaPonderacion, int unaPonderacion_Obtenida)
        {
            this.cod_h_competencia = unCod_h_competencia;
            this.nombre = unNombre;
            this.descripcion = unaDescripcion;
            this.ponderacionrequerida = unaPonderacion;
            this._ponderacionobtenida = unaPonderacion_Obtenida;
        }

        public H_competencia(int unCod_h_competencia, string unNombre, string unaDescripcion, int unaPonderacion, int unaPonderacion_Obtenida,List<H_factor> unaListaDeFactores) :
            this(unCod_h_competencia, unNombre, unaDescripcion, unaPonderacion, unaPonderacion_Obtenida) // Sobrecarga de constructor
        {
            this.factores = unaListaDeFactores;

        }
    }
}
